www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Library/XerCMS_dir.php

    <?php
/**
 * @name     XERCMS
 * @author   Arno <XerCMS@163.com> [QQ:1328013]
 * @version  1.0.0
 * @link     http://www.XerCMS.com 
 */

!defined('XERCMS') && exit('Access Denied');

class DIR
{
	var $path;
	var $list = array();
  
	function __construct() {  }
  
	function __toString () { return ''; }
  
	function __destory () {}
  
	static function mkdirs($path ,$mode = '0777') {
    		if(isset($path{0}) == false) {
	  		return false;
		}
		if(strpos($path,'\\') !== false) {
	  		$path = strtr($path,array('\\'=>'/'));
		}
		//echo $path;

     	if(strpos($path,'/') === 0) $path = substr($path,1);//echo $path.'<br/>';
		$dirs = explode('/',$path);$dir = '';
		foreach($dirs as $k=>$v) {
	  		if(empty($v)){
	    			continue;
	  		}
	  		$dir .= $v.'/';//echo $dir."\r\n";
	  		if(!is_dir($dir) && isset($dir{0})) {//echo '---';
	    			mkdir(XERCMS.$dir, $mode);// or dir);
	    			function_exists('chmod') && chmod(XERCMS.$dir,0777);
	  		} //else echo 'ok';
		}
  	}

  	function suffix($file) {
    		$file = explode('.',$file);
    		return $file[count($file) - 1];
  	}
  
  	static function read($dir) {
    		$list = array();$dir = XERCMS.$dir;
    		if($handle = opendir($dir)) {
	  		while($name = readdir($handle)) {
	     		if($name != '.' && $name != '..' && is_dir($dir.'/'.$name)) {
		   			$list[] = $name;
		 		}
	  		}
		}
		return $list;
  	}

	function filelist($dir,$type = '') {
    		$file = true;
    		if($handle = opendir($dir)) {
			while($file && $file = readdir($handle)) {   
				if ($file != '.' && $file != '..') {   				  
					if(empty($type) || $this->suffix($file) == $type) {
            				$this->list[] = array('name'=>$file,'mtime'=>filemtime($dir.'/'.$file));
          			}			       
        			}   
      		}  
      		closedir($handle);return $this->list;
    		} else exit('Can not open the dir!');   
  	} 
  
  	static function del($dir,$if = true,$sub = false) {
     	self::deldir($dir,$if,$sub);
  	}
  
  	static function deldir($dir,$if = true,$sub = false) {
    		if ($handle = opendir($dir)) {  
	  		$file = true;
      		while($file && $file = readdir($handle)) {
        			if ($file != '.' && $file != '..') {
          			$file = $dir.'/'.$file;
          			if(is_dir($file)) { 
            				$sub && $this->deldir($file,$if);  
          			} else {
		    				if(!unlink($file)) {
			  				return false;
						}
		  			}
        			} 
      		}
	  		closedir($handle);
	  		$if && rmdir($dir);
	  		return true;
		} else return false;
  	}  
}
?>